# 定一个打算整理的文件夹目录，
# 这个脚本可以将该目录下的所有文件都揪出来，并且根据后缀名归类到不同的文件夹里

import os
import glob
import shutil

# 分类后的目录
mkdir_path = r'D:\study\python\test\tidy'
# 待整理的目录
goal_dir = r'D:\study\python\test\totidy'

if not os.path.exists(mkdir_path):
    os.mkdir(mkdir_path)

dir_num = 0
file_num = 0

# 核心逻辑 递归找出所有的文件而非文件夹
for file in glob.glob(f'{goal_dir}/**/*', recursive=True):
    if os.path.isfile(file):
        filename = os.path.basename(file)
        if '.' in filename:
            suffix = filename.split('.')[-1]
        else:
            suffix = 'others'
        if not os.path.exists(f'{mkdir_path}/{suffix}'):
            os.mkdir(f'{mkdir_path}/{suffix}')
            dir_num += 1
        # 拷贝整理
        shutil.copy(file, f'{mkdir_path}/{suffix}')
        file_num += 1
print(f'整理完成，有{file_num}个文件分类到{dir_num}个文件夹中')
